Computer device with joystick

ABSTRACT

A user device has a touchscreen on which a joystick is displayed. The joystick has one or more input translation layers which modify the behaviour of the joystick to match the required game physics of a game entity.

FIELD OF THE INVENTION

Some embodiments relate to a computer device with a joystick.

BACKGROUND OF THE INVENTION

There exist many types of computer device where the display iscontrolled by an input. The input may be a cursor or pointer that iscontrolled by a human interface device such as a mouse, joystick,keyboard etc. Increasingly, the display may comprise a touchscreen whichcan be controlled by a user's touch. That is, activation of functions orobjects are responsive to user input made by way of the user touchingthe screen.

A joystick area may be provided on a touchscreen. The joystick area mayreceive a user input to control two or more different parametersassociated with a game entity. However, this may provide only a crudecontrol over the movement of the game entity. The movement of the gameentity may not match an expected behaviour of the entity.

This patent specification describes not only various ideas andfunctions, but also their creative expression. A portion of thedisclosure of this patent document therefore contains material to whicha claim for copyright is made and notice is hereby given: CopyrightKing.com Limited 2022 (pursuant to 17 U.S.C. 401). A claim to copyrightprotection is made to all screen shots, icons, look and feel and allother protectable expression associated with the games illustrated anddescribed in this patent specification.

The copyright owner has no objection to the facsimile reproduction byanyone of the patent document or the patent disclosure, as it appears inthe Patent and Trademark Office patent file or records, but reserves allother copyright rights whatsoever. No express or implied license underany copyright whatsoever is therefore granted.

SUMMARY OF THE INVENTION

According to an aspect, there is provided a computer device configuredto provide a computer implemented game, the computer device comprising:a touch screen configured to display a joystick for controlling a gameentity of the computer implemented game and to receive user inputinteracting with the joystick; and at least one processor configured tocontrol one or more parameters associated the game entity in response touser input interacting with the joystick by determining one of more of alocation of the user input with respect to the displayed joystick andmovement of the user input with respect to the displayed joystick,wherein the joystick comprises a plurality of areas, the at least oneprocessor configured to control the absolute maximum magnitude of one ormore of the parameters in one area of the plurality of areas to bedifferent to the absolute maximum magnitude of the one or more of theparameters in another of the plurality of areas.

The joystick may be divided into a first set of areas relating to afirst of the plurality of parameters and a second set of areas relatingto a second of the plurality of parameters, each set of areas covering acommon control area of the joystick.

The first and second areas may be provided by respective input controllayers. The input control layers may modify a uniform behaviour of thejoystick.

A number of areas in the first set of areas is different to a number ofareas of the second set of areas.

A number of areas in the first set of areas may be the same as thenumber of areas of the second set of areas.

The first set of areas relating to the first of the plurality ofparameters may coincide with the second set of areas relating to thesecond of the plurality of parameters.

The first set of areas relating to the first of the plurality ofparameters may not be aligned with the second set of areas relating tothe second of the plurality of parameters.

One or more of the areas of the first set of area and/or one or moreareas of the second areas may have a single absolute maximum magnitudeassociated with that respective area.

One or more of the areas of the first set of areas and/or one or moreareas of the second areas may have an absolute maximum magnitude whichvaries in dependence on a distance from one or more adjacent areas ofthe respective set of areas.

The first set of areas may control throttle and may comprise a fullforward throttle area, at least one transition forward throttle area, afull reverse throttle area and at least one transition reverse throttlearea.

The first set of areas may further comprise at least one area where nothrottle is applied.

The second set of areas may control steering and may comprise at leastone full steering area, at least one transition steering area, and atleast one no steering area.

A value of a respective parameter in a respective area may be linearalong a radius of the joystick.

A value of a respective parameter in a respective area may be non-linearalong a radius of the joystick.

A forward direction controlled by the joystick may be aligned with anaxis of the touchscreen.

A forward direction controlled by the joystick may be oriented at anangle with respect to an axis of the touchscreen.

The touchscreen may be configured to display a circular joystick.

The game entity may be a vehicle.

One or more of the one or more parameters may comprise a movementparameter.

One or more parameters may comprise one or more of throttle, speed andsteering.

A plurality of joystick options may be provided, each joystick optionbeing associated with one or more different settings which provide adifferent response to a same input to the joystick.

The plurality of joystick options may be associated with differentterrain in the computer implemented game.

The plurality of joystick options may be associated with differentcamera options in the computer implemented game.

According to an aspect, there is provided a computer device configuredto provide a computer implemented game, the computer device comprising:a touch screen configured to display a joystick for controlling a gameentity of the computer implemented game and to receive user inputinteracting with the joystick; and at least one processor configured tocontrol one or more parameters associated the game entity in response touser input interacting with the joystick by determining one of more of alocation of the user input with respect to the displayed joystick andmovement of the user input with respect to the displayed joystick,wherein the joystick comprises one or more input translation layers tomodify the behaviour of the joystick.

According to another aspect, there is provided a computer implementedmethod performed by a user device configured to provide a computerimplemented game, the method comprising: displaying on a touch screen ofthe user device a joystick for controlling a game entity of the computerimplemented game; receiving user input interacting with the joystick;and controlling one or more parameters associated the game entity inresponse to user input interacting with the joystick by determining oneof more of a location of the user input with respect to the displayedjoystick and movement of the user input with respect to the displayedjoystick, wherein the joystick comprises a plurality of areas, and themethod comprises controlling the absolute maximum magnitude of one ormore of the parameters in one area of the plurality of areas to bedifferent to the absolute maximum magnitude of the one or more of theparameters in another of the plurality of areas.

The joystick may be divided into a first set of areas relating to afirst of the plurality of parameters and a second set of areas relatingto a second of the plurality of parameters, each set of areas covering acommon control area of the joystick.

The first and second areas may be provided by respective input controllayers. The input control layers may modify a uniform behaviour of thejoystick.

A number of areas in the first set of areas is different to a number ofareas of the second set of areas.

A number of areas in the first set of areas may be the same as thenumber of areas of the second set of areas.

The first set of areas relating to the first of the plurality ofparameters may coincide with the second set of areas relating to thesecond of the plurality of parameters.

The first set of areas relating to the first of the plurality ofparameters may not be aligned with the second set of areas relating tothe second of the plurality of parameters.

One or more of the areas of the first set of area and/or one or moreareas of the second areas may have a single absolute maximum magnitudeassociated with that respective area.

One or more of the areas of the first set of areas and/or one or moreareas of the second areas may have an absolute maximum magnitude whichvaries in dependence on a distance from one or more adjacent areas ofthe respective set of areas.

The first set of areas may control throttle and may comprise a fullforward throttle area, at least one transition forward throttle area, afull reverse throttle area and at least one transition reverse throttlearea.

The first set of areas may further comprise at least one area where nothrottle is applied.

The second set of areas may control steering and may comprise at leastone full steering area, at least one transition steering area, and atleast one no steering area.

A value of a respective parameter in a respective area may be linearalong a radius of the joystick.

A value of a respective parameter in a respective area may be non-linearalong a radius of the joystick.

A forward direction controlled by the joystick may be aligned with anaxis of the touchscreen.

A forward direction controlled by the joystick may be oriented at anangle with respect to an axis of the touchscreen.

The touchscreen may be configured to display a circular joystick.

The game entity may be a vehicle.

One or more of the one or more parameters may comprise a movementparameter.

One or more parameters may comprise one or more of throttle, speed andsteering.

A plurality of joystick options may be provided, each joystick optionbeing associated with one or more different settings which provide adifferent response to a same input to the joystick.

The plurality of joystick options may be associated with differentterrain in the computer implemented game.

The plurality of joystick options may be associated with differentcamera options in the computer implemented game.

According to an aspect, there is provided a computer readablenon-transitory storage medium carrying one or more computer executableinstructions which when run on at least one processor cause a method tobe performed, said method comprising: displaying, on a touch screen of auser device, a joystick for controlling a game entity of the computerimplemented game; receiving user input interacting with the joystick;and controlling one or more parameters associated the game entity inresponse to user input interacting with the joystick by determining oneof more of a location of the user input with respect to the displayedjoystick and movement of the user input with respect to the displayedjoystick, wherein the joystick comprises a plurality of areas, and themethod comprises controlling the absolute maximum magnitude of one ormore of the parameters in one area of the plurality of areas to bedifferent to the absolute maximum magnitude of the one or more of theparameters in another of the plurality of areas.

According to another aspect, there is provided a computer implementedmethod performed by a user device configured to provide a computerimplemented game, the method comprising: displaying a joystick on atouchscreen of the user device; determining that a user has removed userinput from the joystick; determining that the user has provided asubsequent user input to the joystick; and determining if a joystickposition is to be updated.

The method may comprise determining that the joystick position is to beupdated if a distance between the removed user input and the subsequentuser input is less than a threshold distance.

The threshold distance is a radius of the joystick.

The method may comprise determining that the joystick position is to beupdated if a time between the removed user input and the subsequent userinput is more than a threshold time.

The method may comprise determining that the joystick position is to beupdated if a position of the subsequent user input is lower down thetouchscreen than the removed user.

The user input may be provided by a thumb or other digit of a user'shand.

According to another aspect, there is provided a user device configuredto provide a computer implemented game, the user device comprising: atouchscreen configured to display a joystick; and at least one processorconfigured to determine: that a user has removed user input from thejoystick; that the user has provided a subsequent user input to thejoystick; and if a position of the joystick is to be updated.

The at least one processor may be configured to determine that thejoystick position is to be updated if a distance between the removeduser input and the subsequent user input is less than a thresholddistance.

The threshold distance is a radius of the joystick.

The at least one processor may be configured to determine that thejoystick position is to be updated if a time between the removed userinput and the subsequent user input is more than a threshold time.

The at least one processor may be configured to determine that thejoystick position is to be updated if a position of the subsequent userinput is lower down the touchscreen than the removed user.

The user input may be provided by a thumb or other digit of a user'shand.

According to an aspect, there is provided a computer readablenon-transitory storage medium carrying one or more computer executableinstructions which when run on at least one processor cause: displayingof a joystick on a touchscreen of user device; determining that a userhas removed user input from the joystick; determining that the user hasprovided a subsequent user input to the joystick; and determining if ajoystick position is to be updated.

A computer program comprising program code means adapted to perform themethod(s) may also be provided. The computer program may be storedand/or otherwise embodied by means of a carrier medium.

In the above, many different embodiments have been described. It shouldbe appreciated that further embodiments may be provided by thecombination of any two or more of the embodiments described above.

Various other aspects and further embodiments are also described in thefollowing detailed description and in the attached claims.

BRIEF DESCRIPTION OF DRAWINGS

To understand some embodiments, reference will now be made by way ofexample only to the accompanying drawings, in which:

FIG. 1 shows an example device in which some embodiments may beprovided;

FIG. 2 shows a joystick provided on a touch screen display with auniform response across the joystick;

FIG. 3 shows a first example of a joystick provided on a touch screendisplay with different areas having a different throttle response;

FIG. 4 shows a second example of a joystick provided on a touch screendisplay with different areas having a different throttle response;

FIG. 5 shows a third example of a joystick provided on a touch screendisplay with different areas having a different steering response;

FIGS. 6 a to 6 i show examples of input with respect to a joystick whichhas different throttle and steering responses;

FIG. 7 shows a schematic view of a joystick provided on a touch screendisplay providing different throttle and steering responses;

FIG. 8 shows another example of a joystick having a nonlinear responsealong a radius of the joystick;

FIGS. 9 a and 9 b show two examples of a joystick orientation withrespect to a touchscreen display, and

FIG. 10 shows a method of some embodiments.

DETAILED DESCRIPTION

The terms user and player are used interchangeably throughout thisdocument and no specific meaning is intended using one or the otherunless the context suggests otherwise. Likewise user device and clientdevice are used interchangeably throughout this document and no specificmeaning is intended using one or the other unless the context suggestsotherwise.

In the following description of various implementations of embodiments,reference is made to the accompanying drawings which form a partthereof, and in which are shown by way of illustration variousimplementations in which the invention may be utilized. It is to beunderstood that other implementations may be utilized, and structuraland functional modifications may be made without departing from thescope of the present invention.

A person skilled in the art will realise that what is described hereinare certain example embodiments. It is possible to implement embodimentsin a number of variations.

A schematic view of a user or client device 1 which may be configured toprovide one or more embodiments is shown in FIG. 1 . The user device maybe configured to provide a computer implemented game. All of the blocksshown are implemented by suitable circuitry. The blocks may beimplemented in hardware and/or software. The user device may have acontrol part 10. The control part may be implemented by one or moreprocessors 15 and one or more memories 20.

The control part 10 is shown as having a graphics controller 25 and asound controller 30. It should be appreciated that one or other or bothof the graphics controller 25 and sound controller 30 may comprise oneor more processors and/or be provided by the one or more processors 15.The graphics and sound controllers may comprise memory and/or mayoperate in conjunction with the one or more memories 20.

The graphics controller 25 is configured to provide a video output 35.The sound controller 30 is configured to provide an audio output 40. Thevideo output 35 is provided to a display 55. The audio out 40 isprovided to an audio device 60 such as a speaker and or earphone(s).

The control part 10 has an interface 45 allowing the device to be ableto communicate with a network such as the Internet or othercommunication infrastructure.

The device 1 has an input device or user interface 65. The input devicecan take any suitable format and can be a touch screen. It should beappreciated that the display 55 may in some embodiments also provide theinput device 65 by way of an integrated touch screen for example.

The blocks of the control part 10 are configured to communicate witheach other by an interconnect such as a bus or any other suitableinterconnect and/or by point to point communication.

It should be appreciated that in some embodiments, the controller may beimplemented by one or more integrated circuits, at least in part.

The user device 1 is shown by way of example only. In alternativeembodiments, one or more of the parts may be omitted. Alternatively oradditionally, some embodiments may comprise one or more other parts.Alternatively or additionally, one or more parts may be combined.

It should be appreciated that in some embodiments, the controller 110may be implemented by one or more integrated circuits, at least in part.

The user device 100 is shown by way of example only. In alternativeembodiments, one or more of the parts may be omitted. Alternatively oradditionally, some embodiments may comprise one or more other parts.Alternatively or additionally, one or more parts may be combined.

The user device may be a so-called smart phone or tablet. In someembodiments, the user device may be relatively small with a relativelysmall touch screen or display. In some embodiments, the computer devicemay be a laptop or desktop computer.

Some embodiments provide a computer device which is configured toprovide a computer implemented game. The computer game may any suitabletype.

Some embodiments may be provided in the context of a multi-player game.Players may control one or more game entities which interact with one ormore game entities of other players. Thus different players will playthe same instance of the game on their own device. Each player will onlybe able to control their own game entities. Information about the gameentities is provided by the player's device to a server. The server willprovide that information to the other players which are playing the sameinstance of the multiplayer game.

Some embodiments may be provided in the context of a single player game.The player may control one or more game entities.

In one example, the entities are cars. The entities may be attack oneanother by crashing into one another and/or by using weapons or objectswhich can be aimed at the entities of other players. However, it shouldbe appreciated that the entities can be visualised in any other suitableform.

It should be appreciated that embodiments may be using in any othersuitable computer implemented game which requires a joystick.

Reference is made to FIG. 2 which show an example joystick 200 which isdisplayed on a touch screen of the user device. In this example, thejoystick 200 is configured to provide two control outputs, velocity anddirection.

The velocity output is based on how far the players input is from centerof joystick area 202. As shown in FIG. 2 , there are a number ofconcentric rings 204 around the centre 202.

These concentric rings may be displayed on the display to assist theplayer when providing user input. However in other embodiments, theseconcentric rings are only used by the at least one processor todetermine the output which is associated with the particular location ofthe input. In this later case, the concentric ring are not visuallydisplayed and effectively are represented by computer program code.

These concentric rings each represent a percentage of a maximumvelocity. The further the ring 204 is from the centre, the higher thevelocity. For example the outer most ring 204 represents a maximumvelocity with the other rings in this example representing 0, 25, 50,and 75 percent of the maximum velocity. These position of the user inputwith respect to these rings represent the velocity output associatedwith the user's touch input.

The direction output is based on where the user's input is in thejoystick area. For example, if the user's input is “north” of thecenter, the game entity may move straight ahead. If the user's input is“south” of the centre, the game entity may move in a reverse direction.If the user's input is east of the centre, the game entity may move tothe right. If the user's input is west of the centre, the game entitymay move to the left. Of course, intermediate movement directs will beprovided for user input between these directions. In the context of thisdocument, the terms “north”, “south”, “east” and “west” should not beregarded as true geographically representations of direction but insteadmay indicated a direction with respect to the display on which thejoystick is displayed.

Thus, depending on the location of the user input, the game entity willbe controlled to move in a particular direction and at a particularvelocity. However, this method of handling these inputs may not besuitable for all game entities. For example, this method may be suitablefor controlling some game entities such as some characters but may notbe suitable for controlling other game entities. For example, thismethod may not be particularly suitable for vehicles. The suitability ofthis method may depend on the game physics of the game entity. Forexample, with the outlined method, the steering of a game entity in theform of a vehicle may seem to be too instantaneous and not in line withthe expected physics behavior. For example, there is no drifting of thevehicle if the vehicle is being turned at a high velocity.

Some embodiments use an input translation layer to modify the effects ofthe player's input in a way that better reflects the expected physicsbehavior of the game entity. This input translation layer is amodification which is applied by the at least one processor to theuser's input received in the joystick area.

In some embodiments, two or more input translation layers may beprovided, with each translation layer representing the control of oneparameter.

Alternatively, a single translation layer may modify two or moreparameters.

The input layer is shown visually to explain the modifications appliedto the output of the joystick depending on the location of the userinput. In practice the input layer is embodied as computer code whichdefines the output in response to a given user input.

In some embodiments a generic joystick is provided such as described inrelation to FIG. 2 with one or more input layers being provided for oneor more different entities. A respective different input layer(s) may beprovided for one or more different game entities.

In some embodiments, the joystick may be implemented with the inputlayers integrated as part of the computer program for providing acontrol output in dependence on the user input with respect to thejoystick area.

In some embodiments, depending on where in the joystick area the user'sinput is received, the velocity and/or direction inputs are modifiedcompared to the example of FIG. 2 . In the example where the game entityis a vehicle, the velocity input is replaced by a throttle input whichcontrols the velocity of the game entity.

FIG. 3 gives one example of a modification provided by some embodimentsto the joystick behavior discussed in relation to FIG. 2 . The joystickmay be generally circular. The input translation layer applied by the atleast one processor modifies the behavior of the throttle. In the firstarea 300 of the joystick area, the behavior of the throttle is notmodified, and the player is able to select up to 100% of the maximumthrottle value, depending on the position of the user input in the firstarea 300 of the joystick area. The first area 300 of the joystick areacorresponds to movement of the game entity in a generally forwardsdirection (north direction). The first area includes the directlyforward direction of the game entity as well as an area on either sideof that directly forward direction.

On either side of the first area 300 of the joystick area are respectivesecond areas 302. The second areas correspond to a transition throttlearea. When the user input is in a respective second area 302, the morethat the user input attempts to turn the game entity, the more that thevelocity is capped. This helps simulate vehicle drift whilst the gameentity is being moved generally in a forward direction. In these secondareas, the velocity is capped all the way down to zero, the closer thatthe direction is to due right or to due left (that is at 90 degrees tothe straight ahead direction).

Opposite to the first area is a third area 308 of the joystick area.This third area 300 includes the direct reverse direction as well as anarea on either side of that direct reverse direction. In the exampleshown in FIG. 3 , the third area is smaller than the first area 300.However, in other embodiments, the first area may be the same size asthe third area or even smaller than the third area.

When in the third area 308, there is no modification of the behaviour ofthe throttle and the game entity is able to move in a reverse directionup to the maximum throttle/velocity.

On either side of the third area 308 of the joystick area are respectivefourth areas 306. The fourth areas correspond to a reverse transitionthrottle area. When the user input is in a respective fourth area 306,the more that the user input attempts to turn the game entity, the morethat the velocity is capped. This helps simulate vehicle drift whilstthe game entity is being moved generally in a backward direction. Inthese fourth areas, the velocity is capped all the way down to zero, thecloser that the direction is to a no man's land which will be describednext.

Between each of the second and fourth areas is a fifth area which isalso referred to as a no man's land area 304. In this region 304, thereis no throttle applied. Only steering is provided when a user input isreceived in the fifth area of the joystick area. This may helptransition between forward and reverse. This may avoid the situationwhere the user provides an input to apply a hard turn to the game entityresulting in oversteering and accidentally get into the reverse zone.

When the user input moves into the fourth area 306 from the fifth area304, the fourth area input will mimic the behavior of the fifth areainput. However, when the user input moves into the fourth area 306 fromthe third area 308, this fourth area input acts as a transition throttlearea but in the reverse direction.

The areas may be segments where the joystick is circular. It should beappreciated that is other embodiments, the areas of the joystick may bedifferent shapes to segments.

It should be appreciated that the size of each of these areas may bechanged in different embodiments. In some embodiments, one or more ofthese areas may be omitted. For example, reference is made to FIG. 4which shows another example of a modification provided by someembodiments where the input translation layer applied by the at leastone processor modifies the behavior of the throttle. In this example,the no man's land or fifth area is provided. The first to fourth areas300, 302, 306 and 308 function as outlined previously. However, in thisexample the respective fourth areas are between the third and respectivesecond areas.

FIG. 5 gives one example of a modification provided by some embodimentswhere the input translation layer applied by the at least one processormodifies the behavior of the steering. When the user input is providedin a first area 500 corresponding to a forward direction no steering isprovided. Likewise, when user input is provided in a third area 508corresponding to a reverse direction no steering is provided. The thirdarea is opposite the first area. The first and third areas may be thesame or different sizes.

Second areas 502 are provided on either side of the first area. In thesesecond areas, the steering response is modified with the steeringresponse being increased the further the user input in the second areais from the first area.

Fourth areas 506 are provided on either side of the third area. In thesefourth areas, the steering response is modified with the steeringresponse being increased the further the user input in the fourth area506 is from the third area 508.

Fifth areas 504 are provided between respective second 502 and fourthareas 506. The fifth areas 504 are generally at right angles to thefirst and third area. In these fifth areas 504 a full steering responseis provided. The fifth area 504 on the right side of the joystick willprovide a full steering response to the right and the fifth area 504 onthe left side of the joystick will provide a full steering response tothe left.

Steering is modified based on which segment or area the user's input isin. In the first and third areas, steering is not applied. In second andfourth areas, the steering response is gradually increased taking intoaccount how close the user input is to fifth area. The closer the userinput to the fifth area, the greater the steering response. In the fiftharea a full or 100 percent steering response is applied

The sizes of each area and/or number of areas may be varied as comparedto the examples shown. The number of different areas may be more or lessthan the examples shown in FIGS. 3, 4 and 5 . The relative size of theareas may be varied as compared to the examples shown in FIGS. 3, 4 and5 .

It should be appreciated that the maximum of a parameter in a particulararea, may be different to the maximum value of the parameter in anotherarea. The different maximum values of the parameter in that particulararea can be selected as required depending on the required physics ofthe game entity being controlled.

One or more areas may be associated with a single maximum parametervalue. Alternatively or additionally, one or more areas may have amaximum parameter which varies depending on how close the user input isto another area. This for example allows there to be gradual changes inthe maximum value of a parameter where the area in question is betweentwo areas with different maximum parameter values. By way of example,this may be the second areas of the previously described examples.

or stepwise

It should be appreciated, that in some embodiments, the input layer orlayers used to control a game entity may be varied depending on one ormore other game factors. For example, the one or more input layers maybe varied depending on the terrain. Of course, different types of gameentity may be associated with one or more different input layer orlayers.

Reference is made to FIGS. 6 a to 6 i which show various examples wherethe input layer modifying the steering as previously described iscombined with the input layer modifying the throttle as previouslydescribed. In this regard, reference is made to FIG. 7 whichschematically shows the throttle and steering values where a throttleinput layer is combined with a steering input layer. It should beappreciated that the areas of the throttle input layer may or may notcoincide with the areas of the steering input layer. In the example ofFIG. 7 , the north direction will have a 100% maximum throttle and 0% ofthe maximum steering value. The south direction will have −100% (were“−” indicates a reverse direction) maximum throttle and 0% steering. Thewest direction will have a 0% maximum throttle and 100% steering. Movingfrom the north direction to the west direction, the values are asfollows: throttle 100%, steering 25%; throttle 100%, steering 50%; andthrottle 50%, steering 75%. Moving from the west direction to the southdirection, the values are as follows: throttle 0%, steering −75%;throttle −50%, steering −50%; and throttle −100%, steering −25%. Similarvalues are provided from north to south via the east direction. Thesevalues represent the maximum possible value for an input which isreceived at the edge of the joystick.

In FIG. 6 a , an input 602 is provided in the middle area of thejoystick 600. When the user input received at this location, there willbe no throttle and no steering. In other words, the game entity may bestationary or moving in a constant direction and at a constant speed.

In the example shown in FIG. 6 b , the input 604 is received on the edgeof the joystick 600 in the north direction. This provides a maximumthrottle response for this direction which is 100% of the maximumthrottle. There will no steering as the game entity is simply movingstraight ahead.

In the example shown in FIG. 6 c , the input 606 is received on the edgeof the joystick in the east direction. This provides a full (100%)steering response. There will no throttle as the game entity is steeredto the right. Also shown in the example shown in FIG. 6 c , the input606 is received on the edge of the joystick 600 in the west direction.This provides a full (100%) steering response. There will no throttle asthe game entity is steered to the left. (It should be appreciated thatthe inputs shown in FIG. 6 c would not be provided at the same time.)

In the example shown in FIG. 6 d , the input 608 is received on the edgeof the joystick 600 in the south direction. This provides a maximumthrottle response for this direction which is 100% of the maximumthrottle. There will no steering as the game entity is simply reversing.

Reference is made to FIG. 6 e which corresponds to FIG. 6 b andillustrates the game entity 610 moving in a forward direction at fullthrottle. The input 604 is received on the edge of the joystick 600 inthe north direction. This provides a maximum throttle response for thisdirection which is 100% of the maximum throttle. There will no steeringas the game entity is simply moving straight ahead.

Reference is made to FIG. 6 f which also illustrates the game entity 610moving in a forward direction but at less than full throttle, 50% inthis example. The input 612 is received at a position of a radius of thejoystick 600 in the north direction. The positions corresponds theconcentric ring representing 50% throttle This provides a throttleresponse for this direction which is 50% of the maximum throttle. Therewill no steering as the game entity is simply moving straight ahead.

Reference is made to FIG. 6 g which also illustrates the game entity 610being steered in a northeast direction but at less than full throttle,85% in this example. The input 614 is received on an edge of thejoystick 600 in the northeast direction where the maximum throttleavailable in that direction is 85% of the maximum throttle in theforward direction. As the input is in the second area, the steering willbe at 100% of its maximum.

In the example shown in FIG. 6 h , the input 616 is received on the edgeof the joystick 600 in the south direction. This provides a maximumthrottle response for this direction which is 100% of the maximumthrottle. There will no steering as the game entity 610 is simplyreversing.

Finally, in FIG. 6 i the user input 618 is provided on the edge of thejoystick 600 in the so called no-man's area. Is area, there is nothrottle is provided but 100% of the steering is provided to control thegame entity 610.

In the previously described embodiments, the concentric rings are evenlyspaced meaning that there is a linear response along the radius of thejoystick. For example the percentage of the maximum velocity on thatradius of the joystick will vary from 0 to 100% of the maximum velocityfor that radius of the joystick. In some embodiments, the concentricrings may not be evenly spaced. This allows for a nonlinear response tobe provided. In this regard, reference is made to FIG. 8 which shows anexample of a joystick where the outer concentric ring 800 represents a100% of the maximum velocity for the given radius and the innermostconcentric ring 806 represents a zero velocity. Between the innermostand outermost centric rings is a first concentric rings 802 representing75% of the maximum velocity and a second concentric ring 804representing 25% of the maximum velocity. As can be seen from theexample of FIG. 8 , the distance between the first and second concentricrings is relatively small provides a relatively narrow range. Inpractice, the game entity being controlled is more likely to be movingat a velocity above 75% of the maximum or below 25%. Thus the positionof the concentric rings can be controlled in order to provide thedesired response of the parameter which is controlled based on distancealong a radius. This provides the option to have a movement physicswhich can be modified depending on the game entity being controlled.

Reference is made to FIGS. 9 a and 9 b which shows a modification. FIG.9 a shows a joystick 900 such as previously described and oriented suchthat the straight ahead direction 902 is aligned with an orientation ofthe display 906 on which the joystick is displayed. In some embodimentsthe orientation of the joystick is modified such as shown in FIG. 9 b .In FIG. 9 b , the joystick 900 is oriented such that the straight aheaddirection 904 of the joystick is angled with respect to the orientationof the display 906. The angle may in some examples be between 0 and 90degrees.

The previous examples have been described in the context of controllinga game entity in the form of a vehicle and, in particular, a car. Itshould be appreciated that other embodiments can be used to control anyother type of a game entity. In particular embodiments, allow the inputsprovided via the joystick to be modified by the input translation layeror layers such that any required game physics required for a particulargame entity can be supported.

In some embodiments, two or more “camera” options are provided. Thesecamera options may be pre-set. The camera options may set one or more ofdistance and field of view. For example, one pre-set camera option mayhave a shorter distance and a narrower field of view and another pre-setcamera option may have a longer distance and a wider field of view. Insome embodiments, the required camera options are provided by the at theleast one processor in response to user input. In some embodiments,different input layer or layers used to control a game entity areprovided depending on the selected camera option. This may compensatefor example, for the user experience with longer camera distance andwider field of views. The user may feel that they are not controllingproperly the vehicles or other game entity with the longer cameradistances. The input layer or layers are modified to take this intoaccount.

In some embodiments, the user may be able to provide user input via theuser interface to select one of a plurality of different camera pre-setoptions. For example there may be a button displayed on the displaywhich will cycle through the different camera pre-set options each timeit is pressed or selected.

Longer distance cameras may be configured with a higher elasticity—thatis they have a small delay when reacting to the player's controls toavoid motion sickness. That elasticity increases the feeling that aplayer may have of not controlling the vehicle accurately. The vehiclereacts as usual, but because the camera does not, the player has asmaller point of reference. This means that they may not perceive amovement change until it is too late. The player may react byoversteering in the opposite direction. This makes it hard to maintainthe vehicle in a straight line.

In some embodiments, each pre-set camera option is provided with its ownjoystick settings. This means that the joystick response is tuned to thecamera settings. For example, with a longer distance camera, thejoystick steering sensitivity is reduced as compared to a shorterdistance camera. This may deal with the oversteering issue which arisewith the longer distance camera option mentioned previously.

A joystick which is displayed on the display is associated with areference position. The reference position is where the centre of thejoystick gets placed, so usually, when the player presses on the screen,that initial press position is detected. The joystick is placed just inthat same position. Any drag from that will control the position of agame entity. That initial position is the ‘reference position’ of thejoystick.

Sometimes a player may end up with their thumb high up on thetouchscreen while using the joystick. This is because the player usuallystarts placing their thumb on the lowest position of the screen. Theplayer then moves their thumb up the screen in order of start movingforward. However, with some intense gameplay, the player may releasetheir thumb at a relatively high position on the touchscreen and pressagain. This makes the joystick reset the reference position higher upthe touchscreen, so the player needs to move the thumb even further inorder to start moving forward again.

To try to address this issue, one or both of the following may beprovided in some embodiments:

1—A waiting time may be provided before the joystick's referenceposition is reset between release and a new press. So if the playerreleases the thumb and presses again before this time ends, the previousreference position is kept for the joystick. However, if the playerwaits for longer than the waiting time before pressing again, thereference position gets reset on a new press.

However, it may be that the player is deliberately trying to reset thereference position quickly (that is more quickly than the waiting time).Accordingly, in some embodiments, it is assumed that the referenceposition is intentionally being reset if the new press is lower than thelast reference position. This avoids the problem where if the new presswas higher, the player needed to drag even higher to start movingforward. Where the new reference position is lower, is straight forwardfor the user to move up from that lower position.

If the distance between the released position and the new position islonger than the joystick radius (or other threshold distance), then itis assumed that the player intended to reset the joystick position.

2—An area in which the reference position is allowed to be placed isprovided. This is so the joystick has an idle/default position when itis not active (that is the player is not touching it). An area aroundthis initial position is provided where the reference position isallowed to be placed when the player touches with the thumb. This meansthat if the player places the thumb close to this initial position, thejoystick will get reset right under the thumb, and the player will needto move up to start moving the character. However, if the playerperforms this first touch in a further position, the reference positionof the joystick is placed in the maximum allowed position for it, andthen the joystick lever will be placed under the thumb making it to bealready in the position where the character is already moving forward.Thus the player is able, just by pressing on a higher position on thescreen, able to make the game move forward without needing to drag histhumb higher.

Reference is made to FIG. 10 which shows a method of some embodiments.In step S1, it is determined by the at least one processor that the userhas released his thumb from the joystick.

In step S2, a timer is started. This is for the waiting time mentionedpreviously.

In step S3, it is determined by the at least one processor that the userhas placed their thumb on the joystick.

In step S4, it is determined by the at least one processor if the timerhas expired.

If so, the next step is step S5. In step S5, the at least one processoris configured to reset the reference position of the joystick. This maythus recentre the joystick.

In the timer has not expired, then the next step is step S6. In step S6,it is determined by the at least one processor if the location of thethumb is further down the touchscreen.

If so, the next step is step S5.

If the location of the thumb is not further down the touchscreen, thenext step is step S7.

In step S7, it is determined by the at least one processor if theposition of the thumb is more than a threshold distance from theprevious position of the thumb. The threshold distance may be of theorder of the radius of the joystick in some embodiments.

If so, the next step is step S5.

If the distance between the locations of the thumb is less than thethreshold distance, the next step is step S8.

In step S8, the reference position of the joystick is not changed.

It should be appreciated that the method of FIG. 10 can be used with anytype of joystick displayed on a touchscreen and not with only theprevious examples. In other words, the joystick may also be used withthe type of joystick outlined in relation to FIG. 2 .

It should be appreciated that the order of some of the steps in FIG. 10may be changed. For example steps S4, S6 and S7 may take place in anyorder and one or more of those steps may be carried out at the sametime.

The previous examples have been described in the context of controllingthe velocity and direction of a game entity. It should be appreciatedthat in other embodiments, one or more other parameters may bealternatively or additionally controlled. For example, the one or moreother parameters may be used to control the type of movement made by thegame entity, how high the game entity jumps and/or falls, a shooting orfighting action of the character, and/or any other suitable parameter.

In this document, some embodiments have been described where the userinput is provided by a thumb. It should be appreciated that input may beprovided by any other digit of the user's hand or by a device such as astylus or in any other suitable manner.

Some embodiments have been described in the context of specific types ofproduct/software. It should be appreciated that this is by way ofexample only and other embodiments may be implemented using any otherproduct/software.

Embodiments provide computer programs embodied on a distribution medium,comprising program instructions which, when loaded into electronicapparatuses, constitute the apparatuses as explained above. Thedistribution medium may be a non-transitory medium.

Other embodiments provide computer programs embodied on a computerreadable storage medium, configured to control a processor to performembodiments of the methods described above. The computer readablestorage medium may be a non-transitory medium.

The computer program may be in source code form, object code form, or insome intermediate form, and it may be stored in some sort of carrier,distribution medium, or computer readable medium, which may be anyentity or device capable of carrying the program. Such carriers includea record medium, computer memory, read-only memory, photoelectricaland/or electrical carrier signal, telecommunications signal, andsoftware distribution package, for example. The computer readable mediumor computer readable storage medium may be a non-transitory medium.

An appropriately adapted computer program code product or products maybe used for implementing the embodiments, when loaded on an appropriatedata processing apparatus. The program code product for providing theoperation may be stored on, provided, and embodied by means of anappropriate carrier medium. An appropriate computer program can beembodied on a computer readable record medium. A possibility is todownload the program code product via a data network. In general, thevarious embodiments may be implemented in hardware or special purposecircuits, software, logic, or any combination thereof.

Some embodiments may be provided as a computer program product, includedon a computer or machine-readable medium having stored thereon theexecutable instructions of a computer-readable program that whenexecuted on at least one processor cause a method according to someembodiments to be carried. The terms “computer-readable medium” or“machine-readable medium” as used herein includes any medium thatparticipates in providing instructions to a processor or othercomponents of computer system for execution. Such a medium may take manyforms including, but not limited to, storage type media, such asnon-volatile media and volatile media, and transmission media. Commonforms of non-volatile media include, for example, a floppy disk, aflexible disk, a hard disk, magnetic tape or any other magnetic medium,a compact disc ROM (CD-ROM) or any other optical medium, punch cards orany other physical medium with patterns of holes, a programmable ROM(PROM), an erasable PROM (EPROM), electrically EPROM (EEPROM), a flashmemory, any other memory chip or cartridge, or any other medium. Someembodiments may be downloaded or distributed as a computer programproduct, wherein the computer-readable program instructions may betransmitted from a remote computer such as a server to a user device byway of data signals embodied in a carrier wave or other propagationmedium via a network.

It is also noted herein that there are several variations andmodifications which may be made to the disclosed solution withoutdeparting from the scope of the present disclosure.

1. A computer device configured to provide a computer implemented game,the computer device comprising: a touch screen configured to display ajoystick for controlling a game entity of the computer implemented gameand to receive user input interacting with the joystick; and at leastone processor configured to control one or more parameters associatedthe game entity in response to user input interacting with the joystickby determining one of more of a location of the user input with respectto the displayed joystick and movement of the user input with respect tothe displayed joystick, wherein the joystick comprises a plurality ofareas, the at least one processor configured to control the absolutemaximum magnitude of one or more of the parameters in one area of theplurality of areas to be different to the absolute maximum magnitude ofthe one or more of the parameters in another of the plurality of areas.2. The computer device as claimed in claim 1, wherein the joystick isdivided into a first set of areas relating to a first of the pluralityof parameters and a second set of areas relating to a second of theplurality of parameters, each set of areas covering a common controlarea of the joystick.
 3. The computer device as claimed in claim 2,wherein a number of areas in the first set of areas is different to anumber of areas of the second set of areas.
 4. The computer device asclaimed in claim 2, wherein a number of areas in the first set of areasis the same as the number of areas of the second set of areas.
 5. Thecomputer device as claimed in claim 2, wherein the first set of areasrelating to the first of the plurality of parameters coincide with thesecond set of areas relating to the second of the plurality ofparameters
 6. The computer device as claimed in claim 2, wherein thefirst set of areas relating to the first of the plurality of parametersare not aligned with the second set of areas relating to the second ofthe plurality of parameters
 7. The computer device as claimed in claim2, wherein one or more of the areas of the first set of area and/or oneor more areas of the second areas have a single absolute maximummagnitude associated with that respective area.
 8. The computer deviceas claimed in claim 2, wherein one or more of the areas of the first setof areas and/or one or more areas of the second areas have an absolutemaximum magnitude which varies in dependence on a distance from one ormore adjacent areas of the respective set of areas.
 9. The computerdevice as claimed in claim 2, wherein the first set of areas controlsthrottle and comprise a full forward throttle area, at least onetransition forward throttle area, a full reverse throttle area and atleast one transition reverse throttle area.
 10. The computer device asclaimed in claim 9, wherein the first set of areas further comprises atleast one area where no throttle is applied
 11. The computer device asclaimed in claim 2, wherein the second set of areas controls steeringand comprise at least one full steering area, at least one transitionsteering area, and at least one no steering area.
 12. The computerdevice as claimed in claim 1, wherein a value of a respective parameterin a respective area is linear along a radius of the joystick.
 13. Thecomputer device as claimed in claim 1, wherein a value of a respectiveparameter in a respective area is non-linear along a radius of thejoystick.
 14. The computer device as claimed in claim 1, wherein aforward direction controlled by the joystick is aligned with an axis ofthe touchscreen.
 15. The computer device as claimed in claim 1, whereina forward direction controlled by the joystick is oriented at an anglewith respect to an axis of the touchscreen.
 16. The computer device asclaimed in claim 1, wherein a plurality of joystick options areprovided, each joystick option being associated with one or moredifferent settings which provide a different response to a same input tothe joystick.
 17. The computer device as claimed in claim 16, whereinthe plurality of joystick options are associated with different terrainin the computer implemented game.
 18. The computer device as claimed inclaim 16, wherein the plurality of joystick options are associated withdifferent camera options in the computer implemented game.
 19. Acomputer implemented method performed by a user device configured toprovide a computer implemented game, the method comprising: displayingon a touch screen of the user device a joystick for controlling a gameentity of the computer implemented game; receiving user inputinteracting with the joystick; and controlling one or more parametersassociated the game entity in response to user input interacting withthe joystick by determining one of more of a location of the user inputwith respect to the displayed joystick and movement of the user inputwith respect to the displayed joystick, wherein the joystick comprises aplurality of areas, and the method comprises controlling the absolutemaximum magnitude of one or more of the parameters in one area of theplurality of areas to be different to the absolute maximum magnitude ofthe one or more of the parameters in another of the plurality of areas.20. A computer readable non-transitory storage medium carrying one ormore computer executable instructions which when run on at least oneprocessor cause a method to be performed, said method comprising:displaying, on a touch screen of a user device, a joystick forcontrolling a game entity of the computer implemented game; receivinguser input interacting with the joystick; and controlling one or moreparameters associated the game entity in response to user inputinteracting with the joystick by determining one of more of a locationof the user input with respect to the displayed joystick and movement ofthe user input with respect to the displayed joystick, wherein thejoystick comprises a plurality of areas, and the method comprisescontrolling the absolute maximum magnitude of one or more of theparameters in one area of the plurality of areas to be different to theabsolute maximum magnitude of the one or more of the parameters inanother of the plurality of areas.